雷电模拟器运行自己编写的app,如何使用dumpsys meminfo
命令查看内存泄漏?
首先,说一下怎么连接雷电模拟器。
1、雷电模拟器安装路径都自带 adb,找到安装路径:
2、进入文件夹 cmd 命令行运行命令 adb start-server
3、执行命令 adb devices
可以看到显示了模拟器
4、执行命令 adb shell
再运行 dumpsys meminfo
即可 查看内存信息
关于dumpsys的使用可参考官网:https://developer.android.google.cn/tools/dumpsys?hl=zh-cn#meminfo
怎么判断有没有内存泄漏???
要使用dumpsys meminfo
命令来检查是否存在内存泄漏,您可以按照以下步骤进行操作:
-
连接到您的Android设备或模拟器,并打开命令行终端。
-
输入以下命令来获取设备上正在运行的进程的列表:
adb shell dumpsys meminfo
这将显示当前设备上所有进程的内存信息。
-
找到您关注的应用程序的进程。您可以根据应用程序的包名或进程名称来查找。通常,应用程序的包名与应用程序在设备上的显示名称相同。
-
在进程列表中找到您的应用程序,然后查找其"Total PSS by OOM adjustment"部分。这一部分显示了应用程序在不同"OOM(Out of Memory)调整级别"下的内存使用情况。
-
如果在不同的OOM级别下,应用程序的总内存使用量(Total PSS)差异很大,特别是在较高的OOM级别下,可能表示存在内存泄漏。
-
另外,关注"Objects"一节,它提供了有关Java对象的信息。如果在应用程序的内存使用中,对象的数量持续增长,可能也是内存泄漏的迹象之一。
请注意,dumpsys meminfo
命令提供了大量的内存信息,包括各种不同的指标和统计数据。
要查看dumpsys meminfo
输出中的哪些数值可以用于判断是否存在内存泄漏,以下是一些关键的指标和信息:
-
Total PSS by OOM adjustment:这一部分显示了应用程序在不同"OOM(Out of Memory)调整级别"下的内存使用情况。OOM调整级别反映了系统对应用程序的内存优先级。如果在较高的OOM级别下,应用程序的总内存使用量(Total PSS)显著高于其他级别,可能表示存在内存泄漏。
-
Java Heap:这一部分提供了Java堆内存的使用情况,包括已分配的堆内存、已使用的堆内存和堆内存的最大大小。如果已分配的堆内存持续增长,而已使用的堆内存没有相应减少,可能表示存在内存泄漏。
-
Objects:这一部分提供了有关Java对象的信息,包括对象的数量、大小和分配的内存。如果在应用程序的内存使用中,对象的数量持续增长,而未被释放的对象占用了大量内存,可能也是内存泄漏的迹象之一。
-
Summary:这一部分提供了应用程序的内存总结信息,包括应用程序的总内存使用量、共享内存和图形缓冲区的使用情况等。如果总内存使用量持续增长,而没有明显的释放或减少,可能表示存在内存泄漏。
这些指标只是dumpsys meminfo
输出中的一部分,您可以根据具体情况和需求,结合其他信息来判断是否存在内存泄漏。在分析内存信息时,应该关注内存使用量的变化趋势、不同指标之间的关系以及异常的表现。如果您不确定如何解释结果或如何判断是否存在内存泄漏,建议参考Android开发者文档或专业的内存分析工具来获得更准确的判断和解释。